package com.client.koshercook.client;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface GreetingServiceAsync {
	
	void greetServer(ClientRequest request, AsyncCallback<ClientResponse> callback);
	
	void getInitData(AsyncCallback<List<String>> callback);
	
	void getRecipeInfo(String link, AsyncCallback<RecipeDetails> callback);
	
	void getNewGrade(String recipeName, int grade, AsyncCallback<Integer> callback);

	void getNewCookTime(String recipeName, int cookTime, AsyncCallback<Integer> callback);

	void addAlterToRecipe(String link, String original, String alter, AsyncCallback<Integer> callback);
	
	void sendNewRecipe(String recipeName, String instructions, String ingredients, String type, AsyncCallback<Integer> callback);
	
	void getUserFridgeIngredients(AsyncCallback<List<String>> callback);
	
	void getUserViewdedRecipes(AsyncCallback<List<String>> callback);
	
	void updateMyFridge(List<String> userList, boolean request, AsyncCallback<Boolean> callback);
	
	void deleteUserFavorites(String rec_link, AsyncCallback<Boolean> callback);
	
	void addComment(String link, String comment, AsyncCallback<Boolean> callback);
	
	void logIn (AsyncCallback<String> callback);
	
	void logOut (AsyncCallback<String> callback);
	
	void isUser (AsyncCallback<String> callback);

	void getUserFavorites(AsyncCallback<List<String>> asyncCallback);
	
	void addUserFavorites(String rec_link, AsyncCallback<Integer> callback);
	
	void sendMail(String desMail, String content, AsyncCallback<Boolean> callback);
}
